<?php 


class FRM_Tools_Regex
{
	/**
	 * Удаление конечного слеша
	 *
	 * @param string $string
	 * @return string
	 */
	static function stripTrailingSlash($string)
	{
		return preg_replace("/\/$/", '', $string);
	}
	
	/**
	 * Очищение расширение файла
	 *
	 * @param string $string
	 * @return string
	 */
	static function stripFileExtension($string)
	{
		return preg_replace("/\..*$/", '', $string);
	}
	
	/**
	 * Возращение содержимого между тегами
	 *
	 * @param string $html
	 * @param string $filter
	 * @return string
	 */
	static function extractHtmlPart($html, $filter = false)
	{
		if($filter)
		{
			$startTag = "<{$filter}>";
			$endTag = "</{$filter}>";
		}else{
			$startTag = "<body>";
			$endTag = "</body>";
		}
		$startPattern = ".*" . $startTag;
		$endPattern = $endTag . ".*";
		
		$noheader = eregi_replace($startPattern, "", $html);
		
		$cleanPart = eregi_replace($endPattern, "", $noheader);
		
		return $cleanPart;
	}
	
	/**
	 * Замена пробльних символов проблелом
	 *
	 * @param string $string
	 * @return string
	 */
	static function stripMultipleSpaces($string)
	{
	    return trim(preg_replace('/\s+/', ' ',$string));
	}
	
	/**
	 * Очищение инвалидных символов
	 *
	 * @param string $string
	 * @return string
	 */
	static function stripInvalidNames($string)
	{
	    $string = trim(preg_replace('/^[0-9]+/', '',$string));
	    $string = preg_replace('/\s+/', '_',$string);
	    return preg_replace('/[^0-9A-Za-z_]+/', '',$string);
	}
	
	/**
	 * Замена тегов
	 *
	 * @param string $tag
	 * @param string $replacement
	 * @param string $content
	 */
	static function replaceTag($tag, $replacement, $content, $attributes = null)
	{
	    $content = preg_replace("/<{$tag}.*?>/", "<{$replacement} {$attributes}>", $content);
	    $content = preg_replace("/<\/{$tag}>/", "</{$replacement}>", $content);	
	    return $content;
	}
	
}